package cn.oms.manage.dao.persist.repository;


import cn.oms.commons.pojo.vo.PageData;
import cn.oms.manage.pojo.entity.Customer;
import cn.oms.manage.pojo.vo.CustomerListItemVO;
import cn.oms.manage.pojo.vo.CustomerStandardVO;

import java.util.List;

public interface ICustomerRepository {

    /**
     * 插入用户数据
     *
     * @return 受影响的行数
     */
    int insert(Customer customer);

    /**
     * 根据id删除用户数据
     *
     * @param id 用户ID
     * @return 受影响的行数
     */
    int deleteById(Long id);
    
    /**
     * 根据id修改用户数据
     *
     * @param customer 封装了用户id和新数据的对象
     * @return 受影响的行数
     */
    int update(Customer customer);

    void updateDepartmentNameByDepartmentId(Long id,String name);

    int countByDepartmentId(Long departmentId);

    /**
     * 根据id查询用户数据详情
     *
     * @param id 用户ID
     * @return 匹配的用户数据详情，如果没有匹配的数据，则返回null
     */
    CustomerStandardVO getStandardById(Long id);

    /**
     * 查询用户数据列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 用户数据列表
     */
    PageData<CustomerListItemVO> list(Integer pageNum, Integer pageSize);

}
